﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FreedomERP.Models;
using FreedomERP.Models.Bd;

namespace FreedomERP.Services.Bd.Impl
{
    /// <summary>
    /// 龙彩的产品规格业务类
    /// </summary>
    interface IBdCategoryService
    {
        /// <summary>
        /// 查找龙彩的产品规格信息
        /// </summary>
        /// <param name="fName">规格名</param>
        /// <param name="fRemark">规格备注</param>
        /// <returns></returns>
        List<BdCategory> findModelCategories(String fName, String fRemark, int start, int limit, out int totalCount, string currAccountOrgunitFId);

        /// <summary>
        /// 根据Id查找龙彩的产品规格信息
        /// </summary>
        /// <param name="fId"></param>
        /// <returns></returns>
        BdCategory findModelCategoryById(String fId);

        /// <summary>
        /// 查找龙彩的产品规格信息
        /// </summary>
        /// <param name="fName">规格名</param>
        /// <returns></returns>
        List<BdCategory> findInvShortageOrderStatusCategories(String fName,int start, int limit, out int totalCount);

        /// <summary>
        /// 新增或更改龙彩的产品规格信息
        /// </summary>
        /// <param name="fid"></param>
        /// <param name="fName"></param>
        /// <param name="fRemark"></param>
        void saveOrUpdateModelCategory(String accountId, string currAccountOrgunitFId, String fId, String fName, String fRemark, out String returnFID);

        /// <summary>
        /// 删除龙彩的产品规格信息
        /// </summary>
        /// <param name="fid"></param>
        void deleteModelCategory(String fId);

        /// <summary>
        /// 根据FType获取Category列表
        /// </summary>
        /// <param name="FType"></param>
        /// <author>梁建东</author>
        /// <returns></returns>
        List<BdCategory> QueryCategoryListByFType(String FType);

        /// <summary>
        /// 根据FId获取资料分类
        /// </summary>
        /// <param name="FId"></param>
        /// <author>姚少鹏</author>
        /// <returns></returns>
        BdCategory getCategoryByFId(string FId);

        /// <summary>
        /// 根据FName和FType获取资料分类
        /// </summary>
        /// <param name="FName">状态名称</param>
        /// <param name="FType">状态类型</param>
        /// <author>姚少鹏</author>
        /// <returns></returns>
        BdCategory getCategory(string FName, string FType);

        /// <summary>
        /// 根据FNumber和FType获取资料分类
        /// </summary>
        /// <param name="FName">状态编号</param>
        /// <param name="FType">状态类型</param>
        /// <author>梁建东</author>
        /// <returns></returns>
        BdCategory GetCategoryByFNumberAndFType(string FNumber, string FType);

        /// <summary>
        /// 根据FType和Fstatus获取资料分类列表
        /// </summary>
        /// <param name="FType">状态类型</param>
        /// <param name="Fstatus">状态状态</param>
        /// <author>陈新杰</author>
        /// <returns></returns>
        List<BdCategory> GetCategoriesByFTypeAndStatus(string FType, string Fstatus);

        /// <summary>
        /// 根据FType和FNumber获取Category的FId
        /// </summary>
        /// <param name="FType"></param>
        /// <param name="FNumber"></param>
        /// <author>梁建东</author>
        /// <returns></returns>
        string QueryCategoryFIdByFTypeAndFNumber(String FType, String FNumber);

        /// <summary>
        /// 查找产品单位信息
        /// </summary>
        /// <param name="fName">名称</param>
        /// <param name="fRemark">备注</param>
        /// <author>梁建东</author>
        /// <returns></returns>
        List<BdCategory> findUnitCategories(String fName, String fRemark, int start, int limit, out int totalCount, string currAccountOrgunitFId);

        /// <summary>
        /// 根据Id查找产品单位信息
        /// </summary>
        /// <author>梁建东</author>
        /// <param name="fId"></param>
        /// <returns></returns>
        BdCategory findUnitCategoryById(String fId);

        /// <summary>
        /// 新增或更改产品单位信息
        /// </summary>
        /// <author>梁建东</author>
        /// <param name="fid"></param>
        /// <param name="fName"></param>
        /// <param name="fRemark"></param>
        void saveOrUpdateUnitCategory(String accountId, string currAccountOrgunitFId, String fId, String fName, String fRemark, out String returnFID);
    }
}
